/**
 * Zadanie 5 5
 *
 * Napisz klasę Wielobok, która będzie reprezentować obiekt wieloboku. Każdy wielobok
 * reprezentowany jest przez ciąg punktów, czyli powiedzmy kwadrat składa się
 * z punktów (0,0),(10,0),(10,10),(0,10),(0,0). W klasie  Wielobok trzeba wykorzystać
 * klasę PUNKT do przechowywania informacji o poszczególnych punktach.
 *
 * class Wielobok {
 *      PUNKT **p;
 *      ...
 *      public:
 *      ...
 * };
 *
 * Każdy wielokąt ma nazwę (oczywiście typu char*). W klasie  Wielobok trzeba zaimplementować:
 *
 * konstruktor pobierający liczbę określającą ilość boków tworzonego wieloboku
 * konstruktor kopiujący
 * destruktor
 * funkcję increase(int n)  zwiększającą ilość boków o n
 * funkcję decrease(int n)  zmniejszającą ilość boków o n (funkcja usuwa boki od końca wieloboku)
 * funkcję set(PUNKT *p, in pos), która wstawia kopię punktu wskazywanego przez p, na pozycję pos, jeżeli na tej pozycji był już jakiś punkt to powinien on zostać usunięty
 * funkcję delete(in pos), która usuwa punkt z wieloboku z pozycji pos
 * funkcję show(), wypisującą informacje o wieloboku na konsoli
 * funkcję double getParimeter(), zwracającą obwód wieloboku.
 *
 * Version: $Id: main.cpp 75 2012-01-02 16:07:53Z s8376@pjwstk.edu.pl $
 */
#include <iostream>
#include "Punkt.h"
#include "Wielobok.h"

using namespace std;

int main()
{
    Wielobok wielobok = Wielobok(4);
    wielobok.set(new Punkt("Punkt 1", 0, 0), 1);
    wielobok.set(new Punkt("Punkt 2", 0, 3), 2);
    wielobok.set(new Punkt("Punkt 3", 3, 3), 3);
    wielobok.set(new Punkt("Punkt 4", 3, 0), 4);

    wielobok.show();
    cout << "Obwód: " << wielobok.getParimeter() << endl;

    wielobok.increase(2);

    wielobok.set(new Punkt("Punkt 5", 1, 5), 5);
    wielobok.set(new Punkt("Punkt 6", 2, 5), 6);

    wielobok.show();
    cout << "Obwód: " << wielobok.getParimeter() << endl;

    wielobok.decrease(2);

    wielobok.show();
    cout << "Obwód: " << wielobok.getParimeter() << endl;

    return 0;
}
